#define _CRT_SECURE_NO_WARNINGS

#include <iostream>
using namespace std;

template <typename T>
void Swap(T& num1, T& num2)
{
	T temp = num1;
	num1 = num2;
	num2 = temp;
}

template <typename T1/*, typename T2*/>
int Add(T1 num1, T1 num2/*, T2 num2*/)
{
	return num1 + num2;
}

template <typename T>
class Stack
{
public:
	Stack(int capaticy = 3)
	{
		_a = new T[capaticy];
		_capatity = capaticy;
		_top = 0;
	}

	int ret()
	{
		return 1;
	}

	~Stack()
	{
		delete[] _a;
		_a = nullptr;

		_capatity = _top = 0;
	}
private :
	T* _a;
	int _capatity;
	int _top;
};


int main()
{
	//int a = 1;
	//int b = 2;
	//Swap(a, b);

	//cout << a << endl << b << endl;

	//int a = 1;
	//double b = 2.0;
	//cout << Add<double>(a, b) << endl;

	Stack<int> st1;
	Stack<double> st2;

	Stack<int> * p = new Stack<int>[10];

	return 0;
}